package weixin.utils;

import java.util.List;


//上传永久素材限制
//所有文件size必须大于5个字节
//图片（image）:2MB，支持JPG,PNG格式
//语音（voice）：2MB，播放长度不超过60s，支持AMR格式
//视频（video）：10MB，支持MP4格式
//普通文件（file）：20MB
//整个企业图文消息素材和图片素材数目的上限为5000，其他类型为1000
//超出素材数量限制返回错误码45028

public class MediaUtils
{
    /**
     *2016年2016年8月3日     
     *@param access_token
     *@param type 媒体文件类型，分别有图片（image）、语音（voice）、视频（video），普通文件(file)
     *@param media 文件路径
     *@return
     * @throws IOException 
     * @throws ParseException 
     *@note:上传临时素材文件
     */
    public static String uploadTemporaryMaterial(String access_token,String type,String filePath){
    	
    	String url="https://api.weixin.qq.com/cgi-bin/media/upload?access_token="+access_token+"&type="+type;
        String result=RequestUtils.filePost(url, filePath);
        System.out.println(result);
        return result;
    }
    
    /**
     *2016年2016年8月3日     
     *@param access_token
     *@param media_id 素材id
     *@return
     *@note:获取临时素材文件(未做文件流获取工作)
     */
    public static String getTemporaryMaterial(String access_token,String media_id){
        String url="https://api.weixin.qq.com/cgi-bin/media/get?access_token="+access_token+"&media_id="+media_id;
        String result=RequestUtils.doGet(url);
        System.out.println(result);
        return result;
    }
    
    /**
     *@note:新增其他类型永久素材 
     *2016年2016年8月3日     
     *@param access_token
     *@param media_id 素材id
     *@param agentid 应用id 
     *@param type 类型   分别有图片（image）、语音（voice）、视频（video）和缩略图（thumb）
     *@return
     */
    public static String uploadMaterial(String access_token,String type,String filePath){
//        String url="https://api.weixin.qq.com/cgi-bin/material/add_material?type="+type+"&access_token="+access_token;
//        String result=RequestUtils.filePost(url, filePath);
    	String result="{\"media_id\":\"Udm38biA4y-1iF0RpaZwPZaUfr4tNueIwoZTl5avylo\",\"url\":\"http://mmbiz.qpic.cn/mmbiz_png/HWibpdyJ33nj9b1z0YzCphdwtkhhsM7iaibsL56nGEcp0vZHcqUv1v0xNoGbhwenzHRmGx1I0iaUenia4lRLLUibiaQibg/0?wx_fmt=png\"}";
        return result;
    }
    /**
     *@note:新增永久图文素材
     *2016年2016年8月3日     
     *@param access_token
     *@param articleList 消息体
     *@return
     */
    public static String uploadMpnews(String access_token,List<String> articleList){
//        String url="https://api.weixin.qq.com/cgi-bin/material/add_news?access_token="+access_token;
//        String content="{\"articles\": "+articleList.toString()+"}";
//        String result=RequestUtils.doPost(url, content);
    	String result="{\"media_id\":\"Udm38biA4y-1iF0RpaZwPTnuh9uDRDfAnXxmlSS9uFg\"}";
        System.out.println(result);
        return result;
    }   
    
    
    /**
     *@note: 修改永久图文素材 
     *@date: 2016年9月1日 下午6:21:58
     *@param access_token
     *@param media_id 要修改的图文消息的id
     *@param index 要更新的文章在图文消息中的位置（多图文消息时，此字段才有意义），第一篇为0
     *@param article
     *@param RequestUtils
     *@return
     */
    public static String updateMpnews(String access_token,String media_id,String index,String article){
      String url="https://api.weixin.qq.com/cgi-bin/material/update_news?access_token="+access_token;
      String content="{"+
					  "\"media_id\":\""+media_id+"\","+
					  "\"index\":\""+index+"\","+
					  "\"articles\": "+article+
					 "}";
      String result=RequestUtils.doPost(url, content);
//      {"errcode":0,"errmsg":"ok"}
      return result;
    } 
    
    
    /**
     *@note: 上传图文素材中使用的图片
     *@date: 2016年9月1日 下午6:22:49
     *@param access_token
     *@param filePath
     *@param RequestUtils
     *@return
     */
    public static String uploadMpnewsImage(String access_token,String filePath){
    	String url="https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token="+access_token;
    	String result=RequestUtils.filePost(url, filePath);
//    	String result="{\"url\":\"http://mmbiz.qpic.cn/mmbiz_png/HWibpdyJ33nj9b1z0YzCphdwtkhhsM7iaibsL56nGEcp0vZHcqUv1v0xNoGbhwenzHRmGx1I0iaUenia4lRLLUibiaQibg/0\"}";
    	return result;
    }
    
    /**
     *2016年2016年8月3日     
     *@param access_token     调用接口凭证
     *@param media_id         素材资源标识ID
     *@return
     *@note:获取永久素材
     */
    public static String getPermanentMaterial(String access_token,String media_id){
        String url="https://api.weixin.qq.com/cgi-bin/material/get_material?access_token="+access_token+"&media_id="+media_id;
        String json="{\"media_id\":\""+media_id+"\"}";
        String result=RequestUtils.doPost(url, json);
        return result;
    }
    
    /**
     *2016年2016年8月3日     
     *          参数                                  必须              说明
     *@param access_token    是          调用接口凭证
     *@param media_id        是          素材资源标识ID
     *@param agentid         是          企业应用的id，整型。可在应用的设置页面查看
     *@return
     *@note:删除永久素材
     */
    public static String deletePermanentMaterial(String access_token,String media_id,String agentid){
        String url="https://api.weixin.qq.com/cgi-bin/material/del?access_token="+access_token+"&media_id="+media_id+"&agentid="+agentid;
        String json="{\"media_id\":\""+media_id+"\"}";
        String result=RequestUtils.doPost(url, json);//正常情况下调用成功时，errcode将为0。
        return result;
    }
    
    /**
     *@note: 获取素材总数	
     *@date: 2016年9月1日 下午6:24:03
     *@param access_token
     *@param RequestUtils
     *@return
     */
    public static String getMaterialCount(String access_token){
        String url="https://api.weixin.qq.com/cgi-bin/material/get_materialcount?access_token="+access_token;
        String result=RequestUtils.doGet(url);
//        {"voice_count":0,"video_count":0,"image_count":1,"news_count":1}
        return result;
    }
    
    /**
     *@note: 获取素材列表
     *@date: 2016年9月1日 下午6:50:50
     *@param access_token
     *@param type 		素材的类型，图片（image）、视频（video）、语音 （voice）、图文（news）
     *@param offset 	从全部素材的该偏移位置开始返回，0表示从第一个素材 返回
     *@param count		返回素材的数量，取值在1到20之间
     *@param RequestUtils
     *@return
     */
    public static String getMaterialList(String access_token,String type,String offset,String count){
        String url="https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token="+access_token;
        String json="{\"type\":\""+type+"\",\"offset\":\""+offset+"\",\"count\":\""+count+"\"}";
        String result=RequestUtils.doPost(url, json);
        return result;
    }
    
    
    
    /**
     *@note:图文消息消息体	
     *@date:2016年8月31日 下午6:32:42
	 *	<br>参数	  			   是否必须			说明
	 *	<br>title			         是			标题
	 *	<br>thumb_media_id	         是	图文消息的封面图片素材id（必须是永久mediaID）
	 *	<br>author			         是	作者
	 *	<br>digest	                                 是	图文消息的摘要，仅有单图文消息才有摘要，多图文此处为空
	 *	<br>show_cover_pic	         是	是否显示封面，0为false，即不显示，1为true，即显示
	 *	<br>content            是	图文消息的具体内容，支持HTML标签，必须少于2万字符，小于1M，且此处会去除JS
	 *	<br>content_source_url 是	图文消息的原文地址，即点击“阅读原文”后的URL
     *@return：String
     */
    public static String getArticle(String title,String thumb_media_id,String author,String digest,String show_cover_pic,String content,String content_source_url){
    	String json="{"+
	       "\"title\": \""+title+"\","+
	       "\"thumb_media_id\": \""+thumb_media_id+"\","+
	       "\"author\": \""+author+"\","+
	       "\"digest\": \""+digest+"\","+
	       "\"show_cover_pic\": \""+show_cover_pic+"\","+
	       "\"content\": \""+content+"\","+
	       "\"content_source_url\": \""+content_source_url+"\""+
	    "}";
    	return json;
    }
    
}
